package com.cskaoyan.javase.array._4operation._2reverse;

import java.util.Arrays;

/**
 * 数组元素的逆序
 * 思考:
 *      1.数组的逆序可以不可以直接在原数组中进行?
 *          可以
 *      2.逆序即颠倒数组中元素的顺序,比如最后一个元素和第一个元素交换
 *      比如对于数组arr
 *      交换的下标是:
 *          0 <---> arr.length - 1
 *          1 <---> arr.length - 1 -1
 *          2 <---> arr.length - 1 - 1 - 1
 *          ...
 *          i <---> arr.length - 1 -i
 * @since 10:41
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5};
        System.out.println("逆序之前:" + Arrays.toString(arr));
        reverse(arr);
        System.out.println("逆序之后:" + Arrays.toString(arr));
    }

    // 数组的逆序
    public static void reverse(int[] arr) {
        // 普通for遍历数组,然后交换元素
        for (int i = 0; i < arr.length / 2; i++) {
            // 如何交换元素? 需要使用中间变量接收被覆盖的取值,一般都使用temp
            int temp = arr[i];
            arr[i] = arr[arr.length - 1 - i];
            arr[arr.length - 1 - i] = temp;
        }
    }
}
